<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
</head>

<body>
    <script type="text/javascript">
        function queryData(url) {
            var p = new Promise((resolve, reject) => {
                var xhr = new XMLHttpRequest();
                xhr.onreadystatechange = () => {
                    if (xhr.readyState != 4) return;
                    if (xhr.readyState == 4 && xhr.status == 200) {
                        resolve(xhr.responseText);
                    } else {
                        reject('服务器错误');
                    }
                };
                xhr.open('get', url);
                xhr.send(null);
            });

            return p;


        }

        // queryData('http://localhost:3000/hello')
        //     .then((data) => {
        //         console.log(data);
        //     }, (err) => {
        //         console.log(err);
        //     })


        //发送多个ajax请求 并保证顺序
        queryData('http://localhost:3000/hello')
            .then((data) => {
                console.log(data)
                return queryData('http://localhost:3000/hello1')
            })
            .then((data) => {
                console.log(data)
                    //如果这里返回的是一个普通值 如 123
                    //则下个then 拿到的data 就是123
                    //返回的普通值为什么 可以调用then呢 
                    //因为返回普通值时 会默认提供一个Promise对象 来保证下个链式操作正常进行
                return queryData('http://localhost:3000/hello2')
            })
            .then((data) => {
                console.log(data)
            })
    </script>

</body>

</html>